import {
  Controller,
  Get,
  Post,
  Body,
  Patch,
  Param,
  Delete,
} from '@nestjs/common';
import { PromptService } from './prompt.service';
import { CreatePromptDto } from './dto/create-prompt.dto';
import { UpdatePromptDto } from './dto/update-prompt.dto';
import { Prompt } from './entities/prompt.entity';
import { Public } from 'src/auth/utils/public.metadata';

@Controller('prompt')
export class PromptController {
  constructor(private readonly promptService: PromptService) {}

  @Post()
  async create(@Body() createPromptDto: CreatePromptDto): Promise<Prompt> {
    return await this.promptService.create(createPromptDto);
  }

  @Public()
  @Get()
  async findAll(): Promise<Prompt[]> {
    return await this.promptService.findAll();
  }

  @Get(':id')
  async findOne(@Param('id') id: string): Promise<Prompt | null> {
    return await this.promptService.findOne(+id);
  }

  @Patch(':id')
  async update(
    @Param('id') id: string,
    @Body() updatePromptDto: UpdatePromptDto,
  ): Promise<Prompt> {
    return await this.promptService.update(+id, updatePromptDto);
  }

  @Delete(':id')
  async remove(@Param('id') id: string): Promise<Prompt> {
    return await this.promptService.remove(+id);
  }
}
